/*
 * ----------------------------------------------------------------------------
 *  (C) Copyright European Telecommunications Standards Institute, 2001.
 *  All Rights Reserved.
 *
 *  All copies of this program, whether in whole or in part, and whether
 *  modified or not, must display this and all other embedded copyright
 *  and ownership notices in full.
 *
 * ----------------------------------------------------------------------------
 */
package org.etsi.ttcn.tri;

import java.io.Serializable;

/**   
      A value of type TriPortIdType includes a value of type
      TriComponentIdType to represent the component to which the port
      belongs, a port index (if present), and the port name as
      specified in the TTCN-3 ATS. The TriPortIdType type is mainly
      required to pass information about the TSI and connections to
      the TSI from the TE to the SA.
 */
public interface TriPortId extends Serializable {
    /** Returns the port name as defined in the TTCN-3 specification.
     */
    public String         getPortName();

    /** Returns the component identifier that this TriPortId belongs
     to as defined in the TTCN-3 specification.
     */
    public TriComponentId getComponent();
	
    /** Returns true if this port is part of an port array, false
     otherwise.
     */
    public boolean        isArray();
	
    /** Returns the port index if this port is part of a port array
       starting at zero. If the port is not part of a port array, then
       -1 is returned.
    */
    public int            getPortIndex();
    
	/** Returns the type name of the port as defined in the
	 * TTCN-3 specification.
	*/
	public String         getPortTypeName();    
}
